package main

import (
    "flag"
    "log"
    "os"
    "strconv"

    "go-gateworker/internal/config"
    "go-gateworker/internal/worker"
)

func main() {
    // 命令行参数
    configFile := flag.String("config", "", "配置文件路径")
    flag.Parse()

    // 检查必要的命令行参数
    if len(os.Args) < 3 {
        log.Fatal("Usage: worker <id> <port> [-config path/to/config.json]")
    }

    // 解析worker ID和端口
    id, err := strconv.Atoi(os.Args[1])
    if err != nil {
        log.Fatalf("Invalid worker ID: %v", err)
    }

    port, err := strconv.Atoi(os.Args[2])
    if err != nil {
        log.Fatalf("Invalid port: %v", err)
    }

    // 加载配置
    cfg, err := config.LoadConfig(*configFile)
    if err != nil {
        log.Fatalf("Failed to load config: %v", err)
    }

    // 创建并启动worker
    w := worker.New(id, port, cfg)
    if err := w.Start(); err != nil {
        log.Fatal(err)
    }
}